<!DOCTYPE HTML>
<html lang="en" class="sidebar-visible no-js light">
    <head>
        <!-- Book generated using mdBook -->
        <meta charset="UTF-8">
        <title></title>
        
        <meta name="robots" content="noindex" />
        
        


        <!-- Custom HTML head -->
        


        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="theme-color" content="#ffffff" />

        
        <link rel="icon" href="favicon.svg">
        
        
        <link rel="shortcut icon" href="favicon.png">
        
        <link rel="stylesheet" href="css/variables.css">
        <link rel="stylesheet" href="css/general.css">
        <link rel="stylesheet" href="css/chrome.css">
        
        <link rel="stylesheet" href="css/print.css" media="print">
        

        <!-- Fonts -->
        <link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
        
        <link rel="stylesheet" href="fonts/fonts.css">
        

        <!-- Highlight.js Stylesheets -->
        <link rel="stylesheet" href="highlight.css">
        <link rel="stylesheet" href="tomorrow-night.css">
        <link rel="stylesheet" href="ayu-highlight.css">

        <!-- Custom theme stylesheets -->
        

        
    </head>
    <body>
        <!-- Provide site root to javascript -->
        <script type="text/javascript">
            var path_to_root = "";
            var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
        </script>

        <!-- Work around some values being stored in localStorage wrapped in quotes -->
        <script type="text/javascript">
            try {
                var theme = localStorage.getItem('mdbook-theme');
                var sidebar = localStorage.getItem('mdbook-sidebar');

                if (theme.startsWith('"') && theme.endsWith('"')) {
                    localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
                }

                if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
                    localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
                }
            } catch (e) { }
        </script>

        <!-- Set the theme before any content is loaded, prevents flash -->
        <script type="text/javascript">
            var theme;
            try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
            if (theme === null || theme === undefined) { theme = default_theme; }
            var html = document.querySelector('html');
            html.classList.remove('no-js')
            html.classList.remove('light')
            html.classList.add(theme);
            html.classList.add('js');
        </script>

        <!-- Hide / unhide sidebar before it is displayed -->
        <script type="text/javascript">
            var html = document.querySelector('html');
            var sidebar = 'hidden';
            if (document.body.clientWidth >= 1080) {
                try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
                sidebar = sidebar || 'visible';
            }
            html.classList.remove('sidebar-visible');
            html.classList.add("sidebar-" + sidebar);
        </script>

        <nav id="sidebar" class="sidebar" aria-label="Table of contents">
            <div class="sidebar-scrollbox">
                <ol class="chapter"><li class="chapter-item expanded affix "><a href="目录.html">目录</a></li><li class="chapter-item expanded "><a href="开篇词.html"><strong aria-hidden="true">1.</strong> 开篇词</a></li><li class="chapter-item expanded "><a href="感受.html"><strong aria-hidden="true">2.</strong> 感受</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/index.html"><strong aria-hidden="true">3.</strong> 1_游戏基础概念</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="1_游戏基础概念/sample.html"><strong aria-hidden="true">3.1.</strong> sample</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/人与游戏.html"><strong aria-hidden="true">3.2.</strong> 人与游戏</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/任天堂的发展史.html"><strong aria-hidden="true">3.3.</strong> 任天堂的发展史</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/游戏与艺术.html"><strong aria-hidden="true">3.4.</strong> 游戏与艺术</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/游戏分类和经典游戏.html"><strong aria-hidden="true">3.5.</strong> 游戏分类和经典游戏</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/游戏的目的.html"><strong aria-hidden="true">3.6.</strong> 游戏的目的</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/电子游戏发展史.html"><strong aria-hidden="true">3.7.</strong> 电子游戏发展史</a></li><li class="chapter-item expanded "><a href="1_游戏基础概念/门的问题.html"><strong aria-hidden="true">3.8.</strong> 门的问题</a></li></ol></li><li class="chapter-item expanded "><a href="2_design_tool/index.html"><strong aria-hidden="true">4.</strong> 2_design_tool</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="2_design_tool/basic_game_design_tool.html"><strong aria-hidden="true">4.1.</strong> basic_game_design_tool</a></li></ol></li><li class="chapter-item expanded "><a href="game_design_play/index.html"><strong aria-hidden="true">5.</strong> game_design_play</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="game_design_play/Flywrench体验后感.html"><strong aria-hidden="true">5.1.</strong> Flywrench体验后感</a></li><li class="chapter-item expanded "><a href="game_design_play/Pinball体验后感.html"><strong aria-hidden="true">5.2.</strong> Pinball体验后感</a></li></ol></li><li class="chapter-item expanded "><a href="杂谈/index.html"><strong aria-hidden="true">6.</strong> 杂谈</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="杂谈/论名词释义.html"><strong aria-hidden="true">6.1.</strong> 论名词释义</a></li><li class="chapter-item expanded "><a href="杂谈/论学习.html"><strong aria-hidden="true">6.2.</strong> 论学习</a></li></ol></li></ol>
            </div>
            <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
        </nav>

        <div id="page-wrapper" class="page-wrapper">

            <div class="page">
                
                <div id="menu-bar-hover-placeholder"></div>
                <div id="menu-bar" class="menu-bar sticky bordered">
                    <div class="left-buttons">
                        <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
                            <i class="fa fa-bars"></i>
                        </button>
                        <button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
                            <i class="fa fa-paint-brush"></i>
                        </button>
                        <ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
                            <li role="none"><button role="menuitem" class="theme" id="light">Light (default)</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
                        </ul>
                        
                        <button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
                            <i class="fa fa-search"></i>
                        </button>
                        
                    </div>

                    <h1 class="menu-title"></h1>

                    <div class="right-buttons">
                        
                        <a href="print.html" title="Print this book" aria-label="Print this book">
                            <i id="print-button" class="fa fa-print"></i>
                        </a>
                        
                        
                    </div>
                </div>

                
                <div id="search-wrapper" class="hidden">
                    <form id="searchbar-outer" class="searchbar-outer">
                        <input type="search" name="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
                    </form>
                    <div id="searchresults-outer" class="searchresults-outer hidden">
                        <div id="searchresults-header" class="searchresults-header"></div>
                        <ul id="searchresults">
                        </ul>
                    </div>
                </div>
                

                <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
                <script type="text/javascript">
                    document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
                    document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
                    Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
                        link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
                    });
                </script>

                <div id="content" class="content">
                    <main>
                        <p>this is pseundo table of contents. ^-^.</p>
<h1 id="开篇词"><a class="header" href="#开篇词">开篇词</a></h1>
<p>先发出灵魂三问：</p>
<ul>
<li>什么是游戏？</li>
<li>游戏对于玩家的作用什么？</li>
<li>游戏的基本要素是什么？</li>
</ul>
<ul>
<li>正感受</li>
<li>负感受</li>
</ul>
<h1 id="正感受"><a class="header" href="#正感受">正感受</a></h1>
<ul>
<li>成功感</li>
<li>成长感</li>
<li>成就感</li>
<li>幸运感</li>
<li>新颖感
<ul>
<li>探索</li>
</ul>
</li>
<li>使命感</li>
<li>重逢感</li>
<li>震撼感</li>
<li>神圣感</li>
<li>仪式感</li>
</ul>
<h1 id="负感受"><a class="header" href="#负感受">负感受</a></h1>
<ul>
<li>无聊感</li>
<li>挫败感</li>
<li>失败感</li>
<li>愤怒感</li>
<li>无助感</li>
<li>悲壮感
<ul>
<li>虽千万人，吾往矣</li>
</ul>
</li>
<li>离别感
<ul>
<li>挚友亲朋的逝去，也是一种离别，永久的离别</li>
</ul>
</li>
<li>玷污感</li>
</ul>
<p>第一章整理思考一些基础概念。主要解释如下问题:</p>
<ul>
<li>游戏是艺术吗？</li>
<li>什么是艺术？</li>
<li>什么是游戏？</li>
<li>游戏的基本要素是什么？</li>
<li>游戏对于玩家的作用什么？</li>
<li>电子游戏发展的历史</li>
<li>不得不说的任天堂历史</li>
<li>不同游戏类型下经典游戏</li>
<li>独立游戏与商业游戏</li>
</ul>
<p>todo </p>
<ul>
<li>游戏对于玩家的作用什么？</li>
<li>大部分人为什么喜欢玩游戏?</li>
<li>游戏设计的目的和意义</li>
</ul>
<p>这个问题太难了，先略过吧.....</p>
<p>todo</p>
<ul>
<li>游戏是艺术吗？</li>
<li>什么是艺术？</li>
<li>什么是游戏？</li>
<li>游戏的基本要素是什么？</li>
</ul>
<p>游戏是艺术吗？我们听到过电子游戏是第九艺术，那是所有的电子游戏都是艺术吗?显然不是，<strong>Flappy Bird</strong>你不会认为它是艺术， <strong>Journey</strong>大部分人都认为是一个艺术品，所以电子游戏是不是艺术呢？游戏和艺术到此什么关系呢?在搞懂这些问题之前，我们需要知道什么是游戏，什么是艺术。</p>
<h1 id="什么是艺术"><a class="header" href="#什么是艺术">什么是艺术</a></h1>
<p>艺术是源于现实但又高于现实的社会意识形态的体现，好的艺术应该具有美学价值和哲学价值。创作者通过各种表现手法把自己对现实的情感体验表现出来，随着社会的发展，文化的进步，从古至今，艺术表达形式也一直在变化在完善，大致可以把艺术分为语言艺术，视觉艺术，表演艺术，综合艺术以及其他艺术几种类型，我们可以看到艺术的<strong>表现维度</strong>和<strong>交互方式</strong>的突破。</p>
<p>视觉艺术的发展很好的体现了这两种突破，所以我们先从视觉艺术谈起。作为人类最为复杂、灵敏的感觉器官，视觉信息在我们所有摄取的信息中占据了绝对的多数，视觉艺术也就成为了第一冲击力最为强悍、最为直观的的艺术形式。</p>
<p>远古时代的人类就有对于绘画与雕塑艺术的探索。而从那时起，如何在二位的画布上表现三维的物体是困扰所有画家的难题。我们知道在文艺复兴时期这个问题被几何透视法完美的解决。这也就完成了在空间维度的突破，从二维进化到了三维。这就是视觉艺术在表现维度上的突破。</p>
<p>相对于其他艺术形式，语言艺术是非常特殊的。因为语言并非人类的直觉感知器官，欣赏者需要通过对于文字的理解，运用自己的主观想象进行对于艺术家描述事物或概念的理解，进行对于情感的体验。所以说语言艺术是一种间接的艺术表达形式。也正式因为如此，语言艺术的表现维度可以说是无穷的，因为这只与写作者、读者的想象力相关。</p>
<p>在表演艺术中，演员与观众的交互相对于语言艺术与视觉艺术要容易得多，因为表演者与欣赏者处于同一个时间、空间中。这也就为交互上的革新创造了良好的条件。</p>
<p>典型的综合艺术还是电影艺术以及电视艺术。在表现形式上，它们达到了前所未有的高峰。但是在交互性上，却没有更进一步。电影中的蒙太奇只是增多了表现手法，对于艺术形式本身、艺术交互性没有太大突破。</p>
<p>纵观艺术的发展史，我看到了其在表现维度与交互维度上的双重发展。再将目光投向现今社会，广义上艺术的表现维度无限，但是狭义上表现维度的进步必须依靠着技术的进步，这也就使得在表现维度上的巨大突破变得几乎不可能。</p>
<p>艺术的交互方式上，我们能做的还很多。纵然我们的电影已经达到了120帧、4k、3D，坐在超级影院中的我们依然是在以第三人称的角度欣赏。VR技术的迅猛发展的确令人欣喜，但是那只是将视角变为了第一人称，却并不能改变我们从亘古时代流传下来的传统：以第三人称的角度去欣赏绝大多数的艺术作品。</p>
<p>这样的角度使得艺术的欣赏者与艺术品本身之间存在一种天然的割裂感，而这直接导致了参与度的降低。第三人称角度不是第三人称视角，而是对于艺术品的态度。</p>
<p>但是电子游戏，尤其是角色扮演类游戏（rpg）所做到的“代入感”（“参与度”），是绝大多数其他艺术形式所达不到的。艺术八大表现形式 文学、音乐、舞蹈、绘画、雕塑、戏剧、建筑、电影，归根结底都是语言艺术，视觉艺术，表演艺术和综合艺术。电子游戏简直就是集大成者，更重要的是电子游戏拥有无可比拟的交互方式，扩展了艺术的表现方式和交互方式。我完全认为电子游戏是艺术第九表现形式。</p>
<h1 id="什么是游戏"><a class="header" href="#什么是游戏">什么是游戏</a></h1>
<p>提到游戏想到了什么? 超级马里奥，俄罗斯方块还是魂斗罗，是的，说起游戏，我们首先想到的就是电子游戏，但是游戏从古至今一直伴随着人类，部落的摔跤，骑士的决斗是游戏，象棋，围棋是游戏，篮球运动，乒乓球运动也是游戏。</p>
<p>游戏具有六大基本元素: 动作，规则，对象，目标，场景和玩家。动作是玩家能进行的操作，比如唱，跳，rap。规则设置允许的动作和禁止的动作，如规则允许玩家可以进行唱，跳，rap，但是只能连跳两次，唱3秒。对象就是玩家可以在游戏中交互的资源，如一把剑，一个石头，一个骰子，电子游戏中的血量，魔法值，金币也是对象。目标就是玩家在游戏中要完成的。场景是依托游戏对象和玩家的地方。</p>
<p>游戏是一种系统。系统是多个具有关系，相互作用，提供一个功能或者达成一个目标的对象组成的。</p>
<ul>
<li>游戏分类
<ul>
<li>独立游戏和商业游戏</li>
<li>玩法</li>
<li>画风</li>
</ul>
</li>
</ul>
<p>游戏的目的是让玩家获得某种情感体验，如预测成功的掌控感(或者说运筹帷幄，决胜千里的感觉)，偶尔预测成功的幸运感，这些感受都会带来快乐的情绪，预测失败会产生挫败感，挫败感会产生悲的情绪。我们不是要设计一个简单或者困难的游戏，不同的游戏动作，直接动作，间接动作，的组合，会带给玩家不同的感受，不同的感受，让玩家产生不同的悲喜情绪，这就是我们的目的，让玩家产生情绪，并以一种节奏，让玩家的悲喜情绪交替产生。</p>
<p>所以总的来说,情绪&lt;=感受，感受可以有动作产生，也可以由画面产生，也可以由音乐产生，也可以由一段文字产生。在游戏里完全可以引入艺术的八大表现形式，组合它们使用，更容易让玩家产生感受，更是由于游戏是一个动态的过程，完全可以让玩家产生一段高低起伏的情绪节奏，游戏简直就是艺术表现的终极形式啊.</p>
<img src="1_游戏基础概念/img/1.png" width="100%">
<p>玩家通过直接交互动作，预测间接交互动作，如果间接交互动作按照玩家预期的那样，玩家就会产生快乐，如果没有按照玩家预期的那样，玩家就会感受到难度。如果所有间接交互动作都能被玩家预测到，刚开始时，确实能让玩家产生快乐，但是次数多了之后，就会让玩家认为游戏太简单，产生无聊感，如果间接交互动作常常不按照玩家的预期进行，游戏就会变得困难，偶尔的一次预测正确，会带来无比的快乐，这是让玩家产生了幸运感，但是这里想说的不是幸运感，要说的是要控制可预测与非可预测之间的平衡，间接交互动作的应该和直接交互动作之间有一种规律，当玩家熟悉了规律之后，非可预测性应该大大降低，转换成可预测性。</p>
<p>todo</p>
<h1 id="门的问题"><a class="header" href="#门的问题">门的问题</a></h1>
<p>&quot;一个游戏设计者是做什么的？你是一个艺术家吗？你是设计角色或者写故事的？或者你是一个程序员?&quot;</p>
<p>对于游戏行业之外的人来说游戏设计这一术语是比较模糊的，就像我对天体物理学这一术语不清楚一样。这里我要向没有任何游戏知识的人解释什么是游戏设计。</p>
<p>我经常使用&quot;门的问题&quot;来描述游戏设计这一工作。</p>
<p>假设:你正在做一个游戏。</p>
<ul>
<li>游戏中是否有一些门？</li>
<li>玩家是否能打开这些门?</li>
<li>这个游戏中玩家是否能打开所有的门?</li>
<li>或者说有些门是用来装饰的？</li>
<li>如何让玩家知道它们的区别?</li>
<li>绿色的门能开红色的门不能开?在不能打开的门前堆叠一些垃圾?或者移除不能开的门的门把？还有其他的方式吗？</li>
<li>这些门是否能被锁上或者被解锁?</li>
<li>以什么信息告知玩家一个锁着的门将要打开，或者一个门永远不可能开启?</li>
<li>玩家知道怎么解锁一个门吗?玩家需要使用钥匙?破解一个控制终端?破解一个谜题?等到通过了某个特定的游戏剧情?</li>
<li>是否有些门可以打开但是玩家却不能进入?</li>
<li>敌人从哪里来?敌人从这些门里来?然后门再关上吗?</li>
<li>玩家怎么打开一个门?只需要走过去它就可以打开?门可以双向打开吗?玩家需要按下一个按钮来打开门吗?</li>
<li>玩家背对门时是否锁上它?</li>
<li>有两个玩家，情况如何？只有两个玩家都通过时才锁上门吗?</li>
<li>如果地图非常大以至于不能全部显示地图的情况下如何呢？如果玩家太落后其他玩家，地面不会在他们的脚下显示，你怎么处理?</li>
<li>你会暂停进度太快的玩家吗，等待所有玩家到达同一房间?</li>
<li>你会传送太落后的玩家到前面去吗?</li>
<li>门的大小是多少?</li>
<li>门的大小是否足够一个玩家穿过?</li>
<li>合作玩家场景呢?当玩家1站在进门的道路上是否能阻挡住玩家2?</li>
<li>当你带领着众多盟友的情况下呢?这个门一次性可以通过多少盟友而不会卡住?</li>
<li>关于敌人呢?一个比一个玩家大很多的小boss能通过这个门吗?</li>
</ul>
<p>这是一个相当典型的游戏设计问题.谁解决这个&quot;门的问题&quot;，谁就是一个设计者.</p>
<h1 id="另一种门的问题"><a class="header" href="#另一种门的问题">另一种门的问题</a></h1>
<p>为了帮助不懂游戏的人理解在一个大的游戏公司中各个角色的职责，我时常使用&quot;门的问题&quot;描述不同角色的人的工作。</p>
<ul>
<li>创意总监:&quot;我们需要在游戏里有一些门&quot;</li>
<li>项目经理:&quot;我会安排相关人员的时间排期&quot;</li>
<li>Designer: &quot;我会写一份文档来说明我们为啥需要门&quot;</li>
<li>原画师: &quot;我将画几种门的原型&quot;</li>
<li>美术总监: &quot;第三种原画是我们需要的类型&quot;</li>
<li>场景画师: &quot;我画一下门在游戏场景中的位置&quot;</li>
<li>动画师: &quot;我制造门的开启和关闭动画&quot;</li>
<li>Sound Designer: &quot;我来制造门开启和关闭的声音&quot;</li>
<li>Audio Engineer: &quot;门开启和关闭的声音会随着玩家的位置和朝向变化&quot;</li>
<li>作曲师: &quot;我会创造一个关于门的主题歌曲&quot;</li>
<li>特效师:&quot;我会增加一些酷酷的火花特效当门开启时&quot;</li>
<li>编剧:&quot;当门开启时，玩家角色会说'嘿 快看！ 这个门开了'&quot;</li>
<li>灯光师:&quot;门关着时发红光，开着时发绿光&quot;</li>
<li>律师:&quot;场景画师在门上画了一个星巴克的图标，如果不想吃官司的话，就移除掉&quot;</li>
<li>角色设计师:&quot;如果门可以带帽子的话，就该我上场了&quot;</li>
<li>游戏程序员:&quot;现在门的开和关是根据玩家和它的距离而判定。也可以通过脚本来控制&quot;</li>
<li>AI程序员:&quot;敌人和队友npc知道有门并知道何时通过它&quot;</li>
<li>网络程序员:&quot;所有的玩家是否能同时看到这个门打开&quot;</li>
<li>发布工程师: &quot;想发布你们的门的话请在下午三点之前在磁盘上整理好&quot;</li>
<li>主程:&quot;我优化了代码在游戏中可以打开1024个门了&quot;</li>
<li>工具程序员:&quot;我提供了一个工具能更方便的放置门&quot;</li>
<li>关卡设计师:&quot;我在关卡地图上放了一个锁着的门，在某个事件完成时，我将解锁它&quot;</li>
<li>UI设计师:&quot;在门上有一个标记，地图上有一个对应的图标&quot;</li>
<li>战斗策划: &quot;野怪从门后产生，而且当其盟友进来时会掩护火力，如果玩家在门后观察，就再另一个门后产生野怪&quot;</li>
<li>系统策划:&quot;玩家在四级的关卡中需要花费3金币获得148经验&quot;</li>
<li>Monetization Designer: &quot;我们可以让玩家充值6元打开这个门，或者等待24小时等门自动打开&quot;</li>
<li>测试人员: &quot;我走进这个门。跑进这个门，跳进这个门，我站在门框里等待门关闭，我保存重新加载在走进这个门，我死后重新加载
再走进这个门。我炸这个门&quot;</li>
<li>UX/Usability Researcher: &quot;我发现Craigslist上的一些人能打通门，我们可以找找其中的原因。&quot;</li>
<li>Localization：&quot;门. Door. Puerta. Porta. Porte. Tür. Dør. Deur. Drzwi. Drws. 문&quot;</li>
<li>Producer：“我们需要让每个人都玩到门吗？或者我们把它作为预售奖励？”</li>
<li>Publisher：“门的功能可以让我们的游戏在秋季大战中脱颖而出。”</li>
<li>CEO：“非常感谢大家付出的努力。”</li>
<li>PR：“粉丝们，你们为门的更新做好准备了吗！”</li>
<li>Community Manager：“我跟粉丝们解释了，他们关心的问题都会在下一个版本中修复。”</li>
<li>Customer Support：“有玩家告诉我们，他不是很理解新功能。我给他解释清楚了。”</li>
<li>Player：&quot;我完全没注意到那儿还有个门。&quot;</li>
</ul>
<p>我喜欢这个例子的原因之一就是其非常平凡通俗易懂。大部分人任务游戏设计非常时尚，很酷，工作中时刻充满着乐趣。但是每天当我以&quot;让我来告诉你门的......&quot;时，面对的都是一些繁琐细小的设计了。</p>
<p>2_design_tool</p>
<p>十大基础游戏设计工具:</p>
<ul>
<li>constraint</li>
<li>direct and indirect interaction</li>
<li>goals</li>
<li>challenge</li>
<li>the interplay of skill, strategy, chance and uncertainty</li>
<li>decision-making and <strong>feedback</strong></li>
<li>abstracion</li>
<li>theme</li>
<li>storytelling</li>
<li>context of play</li>
</ul>
<p>the basic tools of game design are more like the foundational principles of visual art--symmetry, contrast and hierarchy.</p>
<h1 id="constraint"><a class="header" href="#constraint">constraint</a></h1>
<p>约束就是以创造玩的体验为目的，限制玩家的动作以及和objects,其他玩家，场地的交互。</p>
<p>约束是塑造动作的主要方式之一，来产生挑战，创造性的策略，以及玩家间的战斗。</p>
<p>如在 <em>Flywrench</em> 中约束之一就是不能与墙相撞，另一个约束是飞船的颜色和分割线的颜色一致才能通过分割线。这些约束让玩家需要精准的移动和时间把控才能游戏目标，而这些操作就是玩家对游戏满意度的来源。</p>
<h1 id="direct-and-indiect-interaction"><a class="header" href="#direct-and-indiect-interaction">direct and indiect interaction</a></h1>
<p>直接交互和间接交互是设计者需要掌握的两个重要工具。直接交互指玩家可以立即与objects或者playspace交互，间接交互指的是不是直接与玩家有联系的事件。一个经典的例子是 <em>3D弹球</em>，玩家可以直接操作的是发射器和两个蹼杆,与玩家的间接操作是 bumpers, ramps, holes, and other features。在objects的物理特性下，小球在它们之间来回弹跳，与不同的物体碰撞可以获得不同的加倍分数，当小球弹到蹼杆处时，玩家可以操作蹼杆再次击飞小球，小球滚动的时间越久得分越高。游戏中一系列链式动作仅仅从一个简单的蹼杆击打小球开始。可预期性和不可预期性是这个游戏的特色，小球在objects之间的碰撞，客观来说对于玩家是不可预测的，这就保证了玩家每一局都是不同的，能保持一定的新鲜感。但是我要说的是，<em>3D弹球</em>的缺点就是玩家的游戏技巧不会随着玩的时间显著变强，不能带来成长感，成就感，掌控感，所以这只能是一个无聊时玩耍的小游戏。一个真正的好玩的游戏，是应该拥有不可预期性，以使游戏每局都有新鲜感，但是这种不可预期性，应该随着玩游戏的时间变长，而变小，也就是说，玩家的游戏技巧可以逐渐弥补这种不可预期性，这样才能让玩家有一种成长感，有一种成就感。当玩家开始掌控游戏时，应该在关卡中变换游戏内容，让玩家原来的游戏技巧失效，让其开始新一轮的练习之路，这样既保证了游戏的新鲜感，又让玩家体验到了成长感和成就感，玩家才会评价这是一个好玩的游戏。</p>
<p>可能我们天生就喜欢一个动作触发一串链式动作的场景，如多米诺骨牌游戏，当我很小的时候，在摆弄几块砖块时，碰倒了一个竖立的砖块，它又把另一块竖立的砖块砸倒了，我立即就被这种动作吸引了，然后就摆出了一排的砖块，推倒第一个，然后开心的看着一块一块砖倒下的链式反应，砖块哗啦啦的碰撞时，是如此的悦耳动听，一下午的时间都在这个游戏上，直到回家吃饭，多年以后才知道这叫做多米诺骨牌效应，可以玩出花来。只是看着骨牌倒下的场景，也是令人快乐的，可能我们天生就喜欢这种链式动作吧，或者说我们喜欢这种统一有节奏的动作，我们认为这就是美，<em>千手观音</em> 中也有这种类型的动作,这就是韵律吧。</p>
<p>多米诺骨牌和弹球游戏是不一样的，在多米多骨牌中间接动作我们是可预测的，和我们这次主题 direct and indiect interaction 不太相符，只是突发感想，介绍一下另一种直接交互和间接交互方式，<em>3D弹球</em>游戏中的直接交互和间接交互才是此次主题想表达的，直接交互出发后续不可控制的间接交互，间接交互之间以某种特殊的物理特性相关联，在游戏中玩家要成为一个大师，就是要不断熟悉这种物理特性，计算出自己的直接动作会产生什么样的间接动作，来达成游戏的目标。</p>
<p>另一个代表性的游戏是 <em>SUNBURN</em>，玩家操作船长带领所有船员钻进太阳里来过关，船长和船员们之间用一条绳子串联起来，船长的移动会影响绳子各处的船员的运动，船员的运动方向当然受绳子特性的影响了，船员和船长不能碰撞上周围的行星。</p>
<video src="img/sunburn.mp4" controls="controls">
您的浏览器不支持 video 标签。
</video><p>介绍的游戏:</p>
<ul>
<li>Flywrench</li>
<li>Octodad</li>
<li>Treachery in Beatdown City</li>
<li>3D Pinball</li>
<li>SUNBURN!  (找不到游戏，只有IOS版，http://radstronomical.com/SUNBURN)</li>
<li>Ed Key and David Kanaga’s Proteus</li>
</ul>
<p>杂谈</p>
<p>这篇用来解释一些平常看起来含义不明或者含义相似的词语。</p>
<p>包含的名词解释如下:</p>
<ul>
<li>使命与愿景</li>
<li>目的与意义</li>
</ul>
<h1 id="使命与愿景"><a class="header" href="#使命与愿景">使命与愿景</a></h1>
<p>使命简单的说指的是长远的目标，短期内无法实现，可能最终也无法实现，多用来作为精神上的指导。比如浪潮的使命是<strong>引领信息科技浪潮，推动社会文明进步</strong>。
我的使命就是<strong>引领游戏创新，为玩家带来艺术享受</strong> ^_^。所以使命通俗来说就是吹牛，画的一个精神大饼，使命让人拥有使命感，以此来激励和约束人的行为，提高做事标准。</p>
<p>愿景指的是短期的可以实现的目标。如浪潮的愿景是<strong>成为先进的信息科技产品和领先的解决方案服务商</strong>，这在几年内就可以达到，我的愿景就是<strong>成为一个优秀的游戏设计师</strong>,工作几年
也是可以达到的。</p>
<p>这就是使命和愿景的区别，使命是一个高大上的目标，提的太高大上那就是真吹牛了，反而让人失去了使命感，失去了其意义，愿景是实现使命的道路上的一个短期目标，是看得到摸得着的目标。</p>
<h1 id="目的与意义"><a class="header" href="#目的与意义">目的与意义</a></h1>
<p>目的是一个行动要达成的目标，要达成的境界，做的每件事应该都有一个目的，目的是做事的指导方向。</p>
<p>意义多指一个事件对后续的影响。</p>
<p>如遵义会议的目的之一就是纠正王明“左”倾领导在军事指挥上的错误，这次遵义会议成功结束的重大意义是挽救了党、挽救了红军、挽救了中国革命，是中国共产党历史上一个生死攸关的转折点，标志着中国共产党从幼稚走向成熟。</p>
<p>做的一件事可以没有意义，但是需要一个目的。如打游戏的目的就是放松自己，但是大部分时候打游戏是没意义的，除非打游戏影响了你的人生。</p>
<p>再举个例子，你要成为一个优秀的游戏设计师，通过不断的努力学习达成了这个目标，从此功成名就，走上了人生巅峰。多年以后你就可以说当年立志成为优秀设计师的决定，具有重大意义，是这个决定事件影响了自己后续的人生。</p>
<ul>
<li>学习的目的</li>
<li>学习的意义</li>
<li>如何学习
<ul>
<li>中学时期如何学习
<ul>
<li>书本 概念 公里 定理</li>
<li>使用辅助教材与做题的目的</li>
</ul>
</li>
<li>专业知识如何学习
<ul>
<li>视频 or 书籍</li>
<li>猜测-实证-构建</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="学习的目的"><a class="header" href="#学习的目的">学习的目的</a></h1>
<p>不同阶段的学习，具有不同的目的，人生的学习大致可以分为两个阶段，高中之前的通识教育学习，和高中以后专业知识的学习。中学时的学习目的就是为了考个好成绩，大学时的学习虽然目的之一也是考个好成绩，但是我认为更重要的目标是提升自身的专业技能，提升整体的思想深度，完成蜕变，到了社会上之后的学习就完全没有考试这个目标了，纯粹的就是提升自己。</p>
<h1 id="学习的意义"><a class="header" href="#学习的意义">学习的意义</a></h1>
<p>中学时期的学习的意义有两个，一是摸索和培养自己的学习方法论和世界观，打下通用知识的基础，是人生中极其重要的转折点之一，在这个纯粹的学习时期，非常适合摸索和验证自己的方法论，每个考试都是对自己的学习方式的验证，不断在改进和纠正过程中迭代完成符合自己的正确的方法论。二是学的好当然是考个好学校，有一个好的人生起点。虽然以后的路上有很多更重要的转折点，但是对于多数人来说，一步好步步好，一步错步步错，立志的故事还是属于少数。</p>
<h1 id="如何学习"><a class="header" href="#如何学习">如何学习</a></h1>
<p>学习确实有方法论的，不是努力就有结果的，或者是事倍功半，比别人更刻苦，收获却和别人一样或者说还略低于没有自己努力的人。我自己上学时就是不懂得如何学习，靠狂刷题来学习知识，竟然还以此为荣，实在是傻，能教书的人很多，但是真的能教会学习的人很少，这也是这么多年的领悟吧。虽然自己的努力没有得到相应的回报，没有领悟到真正的学习方法，但是养成了刻苦努力的性格，这也是人生的一大收获吧。</p>
<p>那么到底该怎么学习呢？那就要具体情况具体分析，重要的是不要埋头苦干，时常抬起头思考一下是否抓住了本质，分清了主次。</p>
<h1 id="中学时期如何学习"><a class="header" href="#中学时期如何学习">中学时期如何学习</a></h1>
<p>中学时期的学习以现在的目光来看还是挺好学的。中学时期的目标是明确的，就是学会<strong>教材书</strong>上的知识, 教材书就是学习的本质，让你学的知识全在这些教材书上，应该做到对教材书了如指掌。
考试的东西不会超出教材书上的知识范围。那既然如此，辅助教材和做题的目的是什么呢？当然是辅助你掌握教材书上的知识的，教材书上是对知识点的定义，学习知识，就是理解并能运用这些定义，但是只靠看几遍知识定义是不能完全理解知识的，需要从正的，反的，多次的来展示这个知识的运用，你才能真的理解并掌握着了个知识，辅助教材帮你理解知识，题一方面用来验证你是否掌握了这个知识，另一方面让你看到知识的实际应用，帮你更深的立即知识。</p>
<p>教材书上写了<strong>惊喜</strong>, 你第一次接触惊喜这个知识，你心中想什么是惊喜？什么踏马的是踏马的惊喜? 辅助教材给你解释了，惊喜嘛，惊喜就是三天之后，出一百八十万给你们出城剿匪，接上我的腿！明白了吗？此时你应该明白了，哦，这就是惊喜啊，表达是一种在没有事先预知的情况下，突然获得某件心仪的物品或突然遭遇某件好事的心情。</p>
<p>这样一来，你就学会了惊喜，但是时间久了就会忘了什么是惊喜，需要常常温故教材书来巩固这一知识。考试不会考惊吓，只会考惊喜，如果考了惊吓，这真是一道糟糕透的题啊，那这出题人真实太菜了。一道难题应该是考察知识的组合，变化，而不是考察范围之外的题，一个正常的难题应该是揭晓答案时，能让你发出哦...,我怎么没想到，当时脑子怎么没转过来的感慨，而不是说这踏马的没学过啊。如果你能评价出一个题是否合格，是否优秀，那才是学到了知识，当然你得知道你评价的依据是什么。</p>
<p>所以总之一句话：以教材为主，以做题为辅。哎，我自己当时本末倒置，书不怎么看，全靠做题来学习知识，对于相同的知识，题型可能变化一下，就可能做不出来了。</p>
<h2 id="做题"><a class="header" href="#做题">做题</a></h2>
<p>解题就和解密游戏一样，我以玩解密游戏的经验来谈一谈解题。解密游戏的制作是先有要使用的解密元素和要进行的操作来进行创作的，对于作为玩家的我来说，能容易看穿的关卡，没啥好说的，直接过就行了，当碰到比较难的关卡时，就需要从制作者的角度来考虑解法，这个关卡使用了哪些元素，想让我进行什么样的操作呢，这种从制作者的角度来思考的方式，能解掉很多关卡。
说回解题，解密元素就相当于考察的知识，出题人是先有要考察的目标知识，然后根据知识来出的题，所以做题时，应该首先要明确的就是这个题在考察什么知识，从出题人的角度思考，他想让我怎么运用这个知识来解题。</p>
<h2 id="数学如何学"><a class="header" href="#数学如何学">数学如何学</a></h2>
<p>一定要熟悉书上的公理和定理，对于定理能自己证明，对于自己解题的每个步骤，要十分清楚此步骤依赖的公理和定理是哪个，不要靠以前做过相似的题的经验，碰到相似的题，不能想原来的答案是
按照步骤1，2，3证明的，我记住了，我现在也按照相同的步骤证明就行了，虽然这样做，题是解开了，但是这就是单纯的刷题了，并没有意思，也没有什么收获。你可以按照原来的步骤做，但是你得明白每个步骤依赖的依据是什么，也就是根据哪些公理和定理来说明这个步骤是正确的，一定要落实到具体的公理和定理，不要靠原来的答案就是这样写的经验。</p>
<h3 id="平行线等分线段定理"><a class="header" href="#平行线等分线段定理">平行线等分线段定理</a></h3>
<p>举个例子，数学到底该怎么学，以平行线等分线段定理的证明为例。</p>
<p>定义: 平行线等分线段定理  如果一组平行线在一条直线上截得线段相等，那么在其他直线上截得线段也相等。</p>
<p>如图所示:</p>
<img src='./img/tu1.png' />
<p>图1</p>
<img src='./img/tu2.png' />
<p>图2</p>
<p>假设A1A2=A2A3, 只要证明无论l与l'是否平行，都有B1B2=B2B3,就可证明平行线等分线段定理。</p>
<pre><code>证明: (1) 当l与l'平行时，
因为 l1//l2//l3,l//l'
所以 A1A2B2B1是平行四边形，A2A3B3B2是平行四边形。 (平行四边形的判定定理1:两组对边分别平行的四边形。可以不写，但是你得知道依据是什么)
所以A1A2 = B1B2, A2A3 = B2B3  (此处的依据就是平行四边形的性质2: 平行四边形对边相等。)
又因A1A2 = A2A3
所以B1B2 = B2B3

(2) 当l与l'不平行时
过B1做l的平行线，与l2交与C1,过B2做l的平行线，与l3交于C2
同(1)可证B1C1 = B2C2.  (还是平行四边形的性质2)
因为 B1C1 // B2C2 (依据是什么)
所以 角C1B1B2 = 角C2B2B3 (根据平行线判定定理1)
同理 角C1B2B1 = 角C2B3B2
因为 角C1B1B2 = 角C2B2B3  角C1B2B1 = 角C2B3B2 B1C1 = B2C2
所以 三角形B1C1B2 和 三角形B2C2B3 是全等三角形 (全等三角形的判定定理4 角角边)
所以 B1B2 = B2B2   (全等三角形的判定定理1, 边边边)

综上可知: 如果一组平行线在一条直线上截得线段相等，那么在其他直线上截得线段也相等。
</code></pre>
<p>上面的每个步骤都有法可依，这才是学习的过程。</p>
<h2 id="历史如何学"><a class="header" href="#历史如何学">历史如何学</a></h2>
<p>时间轴，事件发生的根本原因，直接原因，导火索，过程，结果，<strong>意义</strong>。</p>
<p>以史为鉴，避免重蹈覆辙。</p>
<h1 id="专业知识如何学习"><a class="header" href="#专业知识如何学习">专业知识如何学习</a></h1>
<p>学习一门新技术时，学习路径分为一下几种</p>
<ol>
<li>看书</li>
<li>看视频</li>
<li>看官方教程和官方文档</li>
<li>看博客</li>
</ol>
<p>个人推荐刚学习一个新技术时，看视频来学习是入门最快，视频表达的信息是文字无法比拟的，就算文章写的事无巨细，还是会遗漏某个非常平常但是却有可能阻碍新人的信息。跟着视频做，一般来说都能做下来，不会卡住。等到熟悉了新技术，就可以看书或者看官方教程继续学习，这样学习起来就比较平滑了。文字相对于视频的优势之一就是可以控制自己的学习速度，不感兴趣的可以快速看或者直接跳过，另一个优势就是方便日后用到相关知识时，便于检索。视频就不方面用来查找自己需要的知识点了。</p>
<p>通过博客学习是不推荐的，学习新技术讲究的就是成体系的学习，通过一个完整的项目来学习是最好的学习方式，视频教程和书籍教程一般都会成体系的展示新知识，但是博客大部分都是零星分散的知识点的讲解，某一个知识点可能讲解的不错，但是不成体系，对于新手入门不太好。博客应该作为自己想深造某一个点的扩展读物，博客也可以用来解决学习实践过程中遇到的问题的解决工具。总之，博客主要用来辅助视频学习和书籍学习的。</p>
<p>当然，视频和书籍的选择也是非常重要的，花同样的时间，当然是使用高质量的教材收获更多了。书籍没啥好说的，找大家推荐的书籍就行了，而且书有目录，通过目录也可大致看出书内容的好坏，对于视频的选择就没有选择书那么方面了，因为视频你不看的话，你很难知道其好坏，可能讲师讲话逻辑不清，废话连篇，讲不清楚知识点，这些只有自己亲自看过才能知道视频好不好，适不适合自己。在知识付费的年代，我选择需要付费的视频，越贵越好，通过大量经验可知，付费视频大部分都比免费视频质量好，而且是好的很多，视频的价格和视频质量是有一个正相关的关系的，所以，通过视频价格，就能很大程度的缩小可选择的视频教程范围。</p>
<h2 id="如何深造呢"><a class="header" href="#如何深造呢">如何深造呢?</a></h2>
<p>如果是用来吃饭的技术，不能仅仅会用，还要精通它，想要精通，就必须深入到底层原理和实现了。一个功能一个功能的去了解其是怎么实现的，我采用<strong>猜测-验证-构建</strong>的方法来剖析一个功能的底层实现。</p>

                    </main>

                    <nav class="nav-wrapper" aria-label="Page navigation">
                        <!-- Mobile navigation buttons -->
                        

                        

                        <div style="clear: both"></div>
                    </nav>
                </div>
            </div>

            <nav class="nav-wide-wrapper" aria-label="Page navigation">
                

                
            </nav>

        </div>

        
        <!-- Livereload script (if served using the cli tool) -->
        <script type="text/javascript">
            var socket = new WebSocket("ws://localhost:3000/__livereload");
            socket.onmessage = function (event) {
                if (event.data === "reload") {
                    socket.close();
                    location.reload();
                }
            };

            window.onbeforeunload = function() {
                socket.close();
            }
        </script>
        

        

        

        
        <script type="text/javascript">
            window.playground_copyable = true;
        </script>
        

        

        
        <script src="elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="mark.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="searcher.js" type="text/javascript" charset="utf-8"></script>
        

        <script src="clipboard.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="highlight.js" type="text/javascript" charset="utf-8"></script>
        <script src="book.js" type="text/javascript" charset="utf-8"></script>

        <!-- Custom JS scripts -->
        

        
        
        <script type="text/javascript">
        window.addEventListener('load', function() {
            window.setTimeout(window.print, 100);
        });
        </script>
        
        

    </body>
</html>
